THE STORY BEHIND APEX AND XPL0 It all started with a group of hackers in 1973. This group, focused at the Colorado School of Mines and organized by T. Wayne Wall, developed an interest in the then new 6502 microprocessor, primarily in the form of the Digital Group kit -- although homebrews, Kims, Tims and even Jolts existed in the group. Everyone agreed that software was needed badly, both an assembler and a higher language. A cross assembler that ran on the Mine's PDP-10 arose from the cosmic mud puddle, so the focus was on a higher language. It was during this early experimental phase that Peter Boyle wrote the original VED editor for use in an editing terminal. It was also around this time that Jim Lauletta started wheeling and dealing around the group as Apparat, and contact was made with a similar group in Reno which later became the 6502 Program Exchange. A split developed immediately. One group, spearheaded by Wayne talked about writing an interpreter in the BASIC family. The other, spearheaded by Peter wanted a block-structured, compiled language. This resulted in two products: Wayne's FOCAL and Peter's XPL0. Group enthusiasm and support helped both of these languages rapidly develop to a moderate degree of maturity. They polarized in application. XPL0 focused on being a C-like, lower-level language with full user control and very little assistance for the novice. FOCAL became a fully devel- oped interpreter for numerical work. At this point Wayne was free to spend large amounts of time on the 6502, and he soon produced a bewildering assortment of code, including a native assembler and a speed enhanced version of the I2L P-code inter- preter behind XPL0. All of this code was marketable, so the Reno group set about doing so. A small but steady income began to flow to the group and the authors involved. Larry Fish wrote an XPL manual at this point. XPL was converted for use on several other machines including the PDP-10, IBM-360, 8080 and 6800 at around this time. These versions have since become obsolete. Then came the floppy disk, and Peter and Larry kludged them into their systems. It became clear at that point that an operating system was needed so Peter and Larry began a dialogue on the subject. The rest of the group were off working on audio and digital cassette drives so Larry and Peter were left alone at first. Peter, egged on by Larry, wrote a rudimentary system called FFS in XPL. XPL and the VED editor were advanced to keep pace. Then the Apple came upon the scene. XPL, VED and the assembler were quickly adapted for it. The resulting sales proved that the Apple was making a market. What the Apple lacked was a general purpose operating system so Peter rewrote and improved FFS to become Apex V1.0. The idea was that Apparrat and the Reno group would market it. They did so with minor success. Apple's BASIC swamped FOCAL, but there was still no useful compiled language for the 6502 so XPL was expanded by Loren Blaney to include floating point. Many others from the group and elsewhere, notably Wayne, Larry, Loren, Ted Dunning, and Roger Nace as well as the Marshs in Reno, and Penny Globus and Kevin Norman in Berkeley made contributions to documentation, utilities, and support code for both Apex and XPL. It was at this point that Penny and Kevin repackaged all of this code under the name Computer Sight. In 1984 Loren, realizing that XPL could be made to run much faster on the 68000, started beating on Rich Ottosen. By August Rich had a board running in an Apple slot that used the 68008 chip. Loren modified the XPL compiler to produce native 68000 code, and suddenly XPL programs were running 20 times faster. The lust for speed continued. Eric Smith modified Rich's board to run a 68020/68881 combination. The compiler was modified, and the floating point calculations used by a Mandelbrot fractal generator were running hundreds of times faster. A year later DFM Engineering hired Loren to replace the operating system used in their 68000-based Stride 440. Version 1.8 Apex was created. Its fast code and RAM disks now made using the Apple seem painfully slow. By the spring of '87 Loren had XPL running under Apex on the Amiga, and Peter had XPL running under Atari DOS on the 1040ST. In 1987 Apple finally came out with an acceptable Macintosh. It had the 68020 with a 68881, and it had slots. What it needed was to have the rodent in its operating system exterminated. DFM hired Loren once again to provide Apex so that it could run their telescope control system using this new platform. At first the task seemed simple: write a few device drivers for the Mac II. But Apple (having learned from IBM's mistake) wasn't about to have the market flooded with affordable clones, and made the details of its hardware very strange and very secret. Using an extreme amount of perseverance, experimentation and disassembly, Loren was finally able to divine enough secrets to come up with the necessary handlers. By this time everyone seemed to own a PC clone, so Larry translated the XPL0 interpreter that was running on the 6502 to run on the 8088. He ran it under MS-DOS, which made it compatible with the entire PC family. It was about two to three times faster than the Apple II when using the standard 4.77 MHz XT, and if you needed more speed you could run it on a 386-based machine. Apex and XPL0 continue to survive in spite of massive support behind other operating systems and languages. The reason is that they provide a relatively simple yet powerful programming environment that can be readily modified to suit the problems at hand. provide a relative